import {takeEvery,put} from 'redux-saga/effects'
import types from '../actionTypes'
import {getAllList} from '../../api/categories'
import {getCategoriesAsyncAction} from './../actions/categoriesActions'

//真正执行的函数
function* getCategories(action){
    const res=yield getAllList(action.payload)
    // console.log(res);
    if(res.code) {
        // 将数据保存到仓库中：希望 dispatch 发出一个命令，调用 reducer 修改仓库数据
        yield put(getCategoriesAsyncAction(res.data));
    }
}

//负责侦听
function* watchCategories(){
    // 第一个参数：侦听的操作对应的 type 值
    // 第二个参数：侦听的 type 被 dispatch 时要执行的函数
    yield takeEvery(types.GET_CATEGORIES_ASYNC,getCategories)
}
//因为不止一个侦听saga函数，所以会在rootSaga中汇总
export default watchCategories